Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬
این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر📖
توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل Spike Test، Soak Test، AB Testing، Snapshot و حتی Failover Database Test.
مباحثی که احتمالا براتون جذابه و صحبت میکنیم:
1. معرفی ابزار هایی برای Performance Test.
2. بررسی فرق Load، Stress، Soak و Spike تست.
3. بررسی تست قناری.
4. تست Smoke چیست؟
5. بررسی هرم تست.
6. بررسی کلی ابزار و مفهوم تست.
🕹 لینک ویدئو: مشاهده ویدئو و شرکت در قرعه کشی
📱 پلی لیست: مشاهده پلی لیست
📱 کانال تلگرام: @hasanxdev
📱 تلگرام رف هاب: @refhubOfficial
😇 رودمپ: https://github.com/Code With HSN/com.hasanxdev/Test-Roadmap-For-Developers
این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر
توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل Spike Test، Soak Test، AB Testing، Snapshot و حتی Failover Database Test.
مباحثی که احتمالا براتون جذابه و صحبت میکنیم:
1. معرفی ابزار هایی برای Performance Test.
2. بررسی فرق Load، Stress، Soak و Spike تست.
3. بررسی تست قناری.
4. تست Smoke چیست؟
5. بررسی هرم تست.
6. بررسی کلی ابزار و مفهوم تست.
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬 این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر 📖 توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل…
تا الان 3 نفر اون قسمتی که آدرس کانال قرعه کشی رو میاریم توی ویدئو رو دیدن و جوین شدن به گروه قرعه کشی ☺️
استقبال کنید در ویدئو های بعدی سعی میکنیم بیشتر کتاب هدیه بدیم بهتون ✌🏻
استقبال کنید در ویدئو های بعدی سعی میکنیم بیشتر کتاب هدیه بدیم بهتون ✌🏻
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
شکست MediatR توسط DispatchR!⚡️ در این ویدیو، یک Mediator پرسرعت و بدون مصرف حافظه (zero allocation) به نام DispatchR را طراحی و پیادهسازی میکنیم که کارایی بهتری نسبت به MediatR دارد. با تستهای واقعی نشان میدهم که چطور کاهش سربار و افزایش سرعت را تجربه…
بچها میخوام یک لایو بزارم و بریم داخلش راجب DispatchR صحبت کنیم و تسک بدم بهتون PR بفرستید روی DispatchR
مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه
کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه
کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
سوال جالبی از من پرسیده شد جهت افزایش دانش شما عزیزان به اشتراک گذاشتیم ❤️
🤔 سوال توسط amirmohammad Fathollahi پرسیده شد:
من برای api gateway دنبال best practice هستم با ocelot
هرچی ویدیو میبینم صرفا در حد اینه route کنه
ولی راجع به معماری و هندل کردن چندین پروژه حرفی نزدن
اگه کسی منبع خوب یا سمپل کد میشناسه معرفی کنه ممنون میشم
توی معماریش چه کار هایی میکنن چه چیز هایی رو بهش میسپرن
آیا صرفا فقط برای reverse ازش استفاده میکنن یا rate limiting و authentication هم بهش میسپرن
بیشتر سوالم راجع به معماریش هست
💡 جواب:
در واقع API Gateway رو یا باید خودمون پیاده سازی کنیم یا از ابزارهایی مثل Kong استفاده کنیم.
اگر خودمون پیاده سازی کنیم طبیعتاً دسترسی کامل به همه چیز داریم ولی Kong مثلا بهمون یک Dashboardهم میده و شاید در یک سری جاها به اندازه یک API Gateway اختصاصی دست آدم باز نباشه.
حالا وقتی میخواهی خودت پیاده کنی Per Environment باید Config های Routing خودترو داشته باشی یعنی روی Develop با Production باید Configهاشون فرق داشته باشه چونکه آدرس ها در Develop Local و Production قطعا متفاوت هست.
یکی از Best Practiceهایی که معمولا در API Gateway ها در نظر میگیرند Code Less میکنندش یعنی هیچ کدی داخلش نمیگذارند و واقعاً شبیه Gateway عمل میکنه، بدون هیچ Business Logic خاصی.
درباره Rate limit باید بهتون بگم که Trade-off زیاد دارد!
یک موضوع infrastructure ای هست یعنی در لایه Application پیاده نمیشه چون Bottleneck برنامه میشه و اگر مشکل داشته باشه میتونه برنامه بندازه یا کند کنه همچنین میتونه single point of failure باشه.
پیچیدگی Rate Limit زمانی هست که چندین Instance از برنامه ما بالا باشه به همین دلیل Application Layer جای خوبی نیست براش اما اگر برنامه شما اینقدر کوچک هست که یک Instance فقط از API Gateway دارد، بنظرم دوباره فکر کنید آیا واقعاً به microservice نیاز داشتید یا نه!
حالا فرض میکنیم که شما به API Gateway نیاز داشتید و Rate Limit هم قرار هست پیاده کنید بنظر من بهتره در لایه Application خودتون پیاده سازی بشه و اگر واقعاً یک چیز نیاز دارید که خیلی Global باشه و زیرساخت ندارید مثل تیم DevOps بنظرم API Gateway جای خوبی هست
اما در کیس Authentication خیلی Trade-off نداریم!
کنترل رو میسپارن به خود Application ها، همانطور که گفتم خیلی سعی میشه API Gatewayها Code Less باشن فرض کنیم سرویس A با مدل AModel احراز هویت میشه و سرویس B با مدل BModel و این میتونه در API Gateway پیچیدگی ایجاد کنه و از نظر Separation of Concerns باید API Gateway یک Gateway بمونه واقعاً
به این دلیل که Authentication میتونه خیلی پیچیدگی ایجاد کنه من حداقل ندیدم جایی احراز هویت رو روی Gateway پیاده کنند، ولی این کار نشدنی نیست.
در بعضی از مدل های احراز هویت نیاز هست که Token برای سرویس اصلی که Authentication رو پیاده سازی کرده ارسال بشه و اگر ما در API Gateway احراز هویت رو پیاده سازی کرده باشیم این میتونه باعث بشه API Gateway خودش گلوگاه باشه که درخواستها رو کند کنه و وقتی کندی در سیستم میبینیم نمیدانیم سرویس واقعاً مشکل دارد یا API Gateway
اگر نظری دارین در کامنت ها برام بنویسید👇
Channel: @hasanxdev
من برای api gateway دنبال best practice هستم با ocelot
هرچی ویدیو میبینم صرفا در حد اینه route کنه
ولی راجع به معماری و هندل کردن چندین پروژه حرفی نزدن
اگه کسی منبع خوب یا سمپل کد میشناسه معرفی کنه ممنون میشم
توی معماریش چه کار هایی میکنن چه چیز هایی رو بهش میسپرن
آیا صرفا فقط برای reverse ازش استفاده میکنن یا rate limiting و authentication هم بهش میسپرن
بیشتر سوالم راجع به معماریش هست
در واقع API Gateway رو یا باید خودمون پیاده سازی کنیم یا از ابزارهایی مثل Kong استفاده کنیم.
اگر خودمون پیاده سازی کنیم طبیعتاً دسترسی کامل به همه چیز داریم ولی Kong مثلا بهمون یک Dashboardهم میده و شاید در یک سری جاها به اندازه یک API Gateway اختصاصی دست آدم باز نباشه.
حالا وقتی میخواهی خودت پیاده کنی Per Environment باید Config های Routing خودترو داشته باشی یعنی روی Develop با Production باید Configهاشون فرق داشته باشه چونکه آدرس ها در Develop Local و Production قطعا متفاوت هست.
یکی از Best Practiceهایی که معمولا در API Gateway ها در نظر میگیرند Code Less میکنندش یعنی هیچ کدی داخلش نمیگذارند و واقعاً شبیه Gateway عمل میکنه، بدون هیچ Business Logic خاصی.
درباره Rate limit باید بهتون بگم که Trade-off زیاد دارد!
یک موضوع infrastructure ای هست یعنی در لایه Application پیاده نمیشه چون Bottleneck برنامه میشه و اگر مشکل داشته باشه میتونه برنامه بندازه یا کند کنه همچنین میتونه single point of failure باشه.
پیچیدگی Rate Limit زمانی هست که چندین Instance از برنامه ما بالا باشه به همین دلیل Application Layer جای خوبی نیست براش اما اگر برنامه شما اینقدر کوچک هست که یک Instance فقط از API Gateway دارد، بنظرم دوباره فکر کنید آیا واقعاً به microservice نیاز داشتید یا نه!
حالا فرض میکنیم که شما به API Gateway نیاز داشتید و Rate Limit هم قرار هست پیاده کنید بنظر من بهتره در لایه Application خودتون پیاده سازی بشه و اگر واقعاً یک چیز نیاز دارید که خیلی Global باشه و زیرساخت ندارید مثل تیم DevOps بنظرم API Gateway جای خوبی هست
اما در کیس Authentication خیلی Trade-off نداریم!
کنترل رو میسپارن به خود Application ها، همانطور که گفتم خیلی سعی میشه API Gatewayها Code Less باشن فرض کنیم سرویس A با مدل AModel احراز هویت میشه و سرویس B با مدل BModel و این میتونه در API Gateway پیچیدگی ایجاد کنه و از نظر Separation of Concerns باید API Gateway یک Gateway بمونه واقعاً
به این دلیل که Authentication میتونه خیلی پیچیدگی ایجاد کنه من حداقل ندیدم جایی احراز هویت رو روی Gateway پیاده کنند، ولی این کار نشدنی نیست.
در بعضی از مدل های احراز هویت نیاز هست که Token برای سرویس اصلی که Authentication رو پیاده سازی کرده ارسال بشه و اگر ما در API Gateway احراز هویت رو پیاده سازی کرده باشیم این میتونه باعث بشه API Gateway خودش گلوگاه باشه که درخواستها رو کند کنه و وقتی کندی در سیستم میبینیم نمیدانیم سرویس واقعاً مشکل دارد یا API Gateway
اگر نظری دارین در کامنت ها برام بنویسید
Channel: @hasanxdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
رودمپ تست نویسی قسمت دوم، با QA Lead اکالا 🔬 این ویدئو رو ببین و کتاب تست نویسی رایگان بگیر 📖 توی قسمت دوم از پلی لیست تستنویسی، میریم سراغ ادامهی رودمپ؛ این بار تمرکز روی تستهای non-functional، و کلی تست دیگه که شاید کمتر دربارهشون شنیده باشی، مثل…
فقط امروز تا 12 شب وقت دارید ویدئو رو کامل ببینید و در قرعه کشی شرکت کنید هم یاد بگیرید هم کتاب جایزه ببرین 🥳
فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس
لینک ویدئو: https://youtu.be/61tdLL5sy8I
فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس
لینک ویدئو: https://youtu.be/61tdLL5sy8I
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
تقریبا توی 4 روز 28 تا Stars گرفتیم ⭐️ یه تعدادش خودتون بودین دمتون گرم ❤️ ← راستی Readme رو حتما بخونید کش پیاده کردیم به کمک DI و این باعث شد از Mediator Source Generator نسخه Stable هم سریع تر بشیم (نسخه 3 preview خیلی عقب بود از سرعت ما) 😎👋🏻 🔗 پروژه:…
ویدئو بعدی مون نسخه جدید DispatchR که Stream روهم ساپورت میکنه
-206 خط پاک کردم و +1162 خط اضافه شد
وابستگی به ZLinq روهم حذف کردم😎
اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید
بریم برای رکورد...
PR: https://github.com/Code With HSN/com.hasanxdev/DispatchR/pull/7/files
-206 خط پاک کردم و +1162 خط اضافه شد
وابستگی به ZLinq روهم حذف کردم
اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید
بریم برای رکورد...
PR: https://github.com/Code With HSN/com.hasanxdev/DispatchR/pull/7/files
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
فقط امروز تا 12 شب وقت دارید ویدئو رو کامل ببینید و در قرعه کشی شرکت کنید هم یاد بگیرید هم کتاب جایزه ببرین 🥳 فردا شب قرعه کشی انجام میشه با توجه به اینکه تا الان 10 نفر کامل ویدئو رو دیدن شانس شما توی برنده شدن خیلی بالاس لینک ویدئو: https://youtu.be/61tdLL5sy8I
ازمن خواستند که تمدیدش کنم، گفتن وقت نکردن ببینن تا 12 ظهر جمعه هم جوین بشین قبوله ❤️
Code With HSN
بچها میخوام یک لایو بزارم و بریم داخلش راجب DispatchR صحبت کنیم و تسک بدم بهتون PR بفرستید روی DispatchR مهم نیست اگر مشکل داشته باشه اگر کند باشه مرج میکنیم بعدا بهبودش میدیم حداقل ها باید توش رعایت بشه کیا پایه هستن؟ کی بزاریم؟ توی کامنت ها بیاین صحبت کنیم
سلام بچها صبحتون بخیر، میخواستم دیشب یا امشب لایو بزارم ولی محتوای کافی آماده نکرده بودم که ارائه خوبی داشته باشیم (همزمان روی ویدئو جدید دارم کار میکنم وقت نمیشه) هفته بعدی درباره Kafka باهم گپ میزنیم یک ارائه آماده خواهم کرد و باهاتون به اشتراک میزارم. 🍻
منتظر اطلاع رسانی های بعدی باشید.
منتظر اطلاع رسانی های بعدی باشید.
چالش ❓
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید 😀
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید 😀
Anonymous Poll
25%
غیر ممکنه ❌
39%
تاحالا انجام دادم ✔️
36%
توی توضیحات با اسپویلر مینویسم 😁
Code With HSN
ویدئو بعدی مون نسخه جدید DispatchR که Stream روهم ساپورت میکنه -206 خط پاک کردم و +1162 خط اضافه شد وابستگی به ZLinq روهم حذف کردم 😎 اون جایی که MediatR ZeroAllocation شده باگه بهش توجه نکنید بریم برای رکورد... PR: https://github.com/Code With HSN/com.hasanxdev/DispatchR/pull/7/files
DispatchR
ویژگی های جدید:
1. وابسته نبودن به z linq
2. ساپورت CreateStream
در Runtime با پرفورمنس قابل رقابت با Mediator source generator
توضیحات جدید ببینید حتما:
https://github.com/Code With HSN/com.hasanxdev/DispatchR
v1.1.0
is out now! ✅ویژگی های جدید:
1. وابسته نبودن به z linq
2. ساپورت CreateStream
در Runtime با پرفورمنس قابل رقابت با Mediator source generator
توضیحات جدید ببینید حتما:
https://github.com/Code With HSN/com.hasanxdev/DispatchR
GitHub
GitHub - hasanxdev/DispatchR: Fast, zero-alloc alternative to MediatR for .NET – minimal, blazing fast, and DI-friendly.
Fast, zero-alloc alternative to MediatR for .NET – minimal, blazing fast, and DI-friendly. - hasanxdev/DispatchR
Code With HSN
چالش ❓
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید 😀
فرض کنید برنامه شما 100 مگابایت رم داره، و قراره دیتایی به حجم 1 ترابایت رو پردازش کنید، در این چالش زمان مهم نیست مهم اینه بتونیم پردازش کنیم
جوابتون رو توی کامنت ها به صورت spoiler بفرستید 😀
چطوری یک فایل یک ترابایتی رو پردازش کنیم؟⚡️
🔥 در این قسمت قراره باهم بریم سراغ یه موضوع خیلی مهم:
اگر به رشد سیستم فکر نکنیم چی میشه؟ چه بلایی سرمون میاد؟
بهونهی این بحث، معرفی نسخه جدید پکیجم به اسم DispatchR هست، که با هدف بهبود عملکرد نسبت به MediatR طراحی شده.
اما این فقط یه معرفی ساده نیست! تو این ویدیو قراره هم آموزش ببینید، هم کد بزنیم، هم سورس بخونیم، هم بنچمارک بگیریم! 💥
اگر به بهینهسازی در DotNet علاقه دارید، حتما این ویدیو را ببینید!
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/Code With HSN/com.hasanxdev/DispatchR
پلی لیست: Mediator Pattern
🔥 در این قسمت قراره باهم بریم سراغ یه موضوع خیلی مهم:
اگر به رشد سیستم فکر نکنیم چی میشه؟ چه بلایی سرمون میاد؟
بهونهی این بحث، معرفی نسخه جدید پکیجم به اسم DispatchR هست، که با هدف بهبود عملکرد نسبت به MediatR طراحی شده.
اما این فقط یه معرفی ساده نیست! تو این ویدیو قراره هم آموزش ببینید، هم کد بزنیم، هم سورس بخونیم، هم بنچمارک بگیریم! 💥
اگر به بهینهسازی در DotNet علاقه دارید، حتما این ویدیو را ببینید!
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/Code With HSN/com.hasanxdev/DispatchR
پلی لیست: Mediator Pattern
فکر نمیکردم به این زودی از DispatchR توی پروژه هاتون استفاده کنید دمتون گرم خیلی بهبودش میدیم باهم ⭐️
استپ بعدی INotification هست، داوطلب اگه داریم استارت بزنه و انجامش بده 🤩
https://www.linkedin.com/feed/update/urn:li:activity:7330347038464688128/
استپ بعدی INotification هست، داوطلب اگه داریم استارت بزنه و انجامش بده 🤩
https://www.linkedin.com/feed/update/urn:li:activity:7330347038464688128/
آقای Chris Patterson نویسنده MassTransit
از DispatchR خوششون اومده و استار دادن🫠
خوشحالم که در این سطح فعالیت میکنیم ویدئو قسمت جدید رو از دست ندید:
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/Code With HSN/com.hasanxdev/DispatchR
از DispatchR خوششون اومده و استار دادن
خوشحالم که در این سطح فعالیت میکنیم ویدئو قسمت جدید رو از دست ندید:
🎥 لینک ویدئو: https://youtu.be/kjKzGcE9F6Y
🔗 لینک دیسپچآر: https://github.com/Code With HSN/com.hasanxdev/DispatchR
Please open Telegram to view this post
VIEW IN TELEGRAM
Code With HSN
سلام بچها صبحتون بخیر، میخواستم دیشب یا امشب لایو بزارم ولی محتوای کافی آماده نکرده بودم که ارائه خوبی داشته باشیم (همزمان روی ویدئو جدید دارم کار میکنم وقت نمیشه) هفته بعدی درباره Kafka باهم گپ میزنیم یک ارائه آماده خواهم کرد و باهاتون به اشتراک میزارم. 🍻…
سلام بچها،
یک Live در یوتیوب خواهیم داشت میخواستم بدونم این لایو رو جمعه بزاریم بیشتر شرکت میکنید یا 5 شنبه؟
لایو ساعت 8 شب و درباره کافکا هست، سعی میکنم مفاهیم پایه ای رو بهتون توضیح بدم و یکم به مباحث پیشرفته هم بپردازیم میتونید هردو انتخاب کنید
یک Live در یوتیوب خواهیم داشت میخواستم بدونم این لایو رو جمعه بزاریم بیشتر شرکت میکنید یا 5 شنبه؟
لایو ساعت 8 شب و درباره کافکا هست، سعی میکنم مفاهیم پایه ای رو بهتون توضیح بدم و یکم به مباحث پیشرفته هم بپردازیم میتونید هردو انتخاب کنید
Anonymous Poll
46%
پنجشنبه
60%
جمعه
این دومین ریپو من هست که ۱۰۰ تایی میشه
توی کمتر از یک ماه
اون داداشمون که با سورس جنریتور Mediator نوشته بود تازه نسخه ۳ اش هم مصرف حافظه داره هم سرعتش خیلی کمتره من توی بنچمارک ها از نسخه ۲ که استیبل هست استفاده کردم تا بنچمارک عادلانه باشه
منتظرم نسخه ۳ رو بده برم بنچمارک بگیرم و این ریپو بشه سریع ترین ریپو Mediator😁
توی کمتر از یک ماه
اون داداشمون که با سورس جنریتور Mediator نوشته بود تازه نسخه ۳ اش هم مصرف حافظه داره هم سرعتش خیلی کمتره من توی بنچمارک ها از نسخه ۲ که استیبل هست استفاده کردم تا بنچمارک عادلانه باشه
منتظرم نسخه ۳ رو بده برم بنچمارک بگیرم و این ریپو بشه سریع ترین ریپو Mediator
Please open Telegram to view this post
VIEW IN TELEGRAM